/*
* Copyright (c) 2014 Qunar.com. All Rights Reserved.
*/
package net.oschina.bilbodai.common.beanutil.property.asm.lexer.code;

import net.oschina.bilbodai.common.beanutil.property.asm.lexer.parse.TokenApplyCtx;
import org.objectweb.asm.MethodVisitor;

/**
 * @author qt-maodai  Date: 15-8-5 Time: 下午7:51
 * @version $Id$
 */
public interface ICodeApplier {

    /**
     * <p>
     * 通过这层实例和属性生成相应的代码
     * </p>
     *
     * @param mv       methodVisitor
     * @param applyCtx ctx
     * @return ApplyResult
     * @throws Exception 代码生成出现异常
     */
    CodeApplyResult apply(MethodVisitor mv, TokenApplyCtx applyCtx) throws Exception;

}
